# -*- coding: utf-8 -*-
"""
Created on Sun Sep 21 05:27:39 2025

@author: surpass

学生成绩管理系统主程序
"""

from managers.student_manager import StudentManager
from utils.file_utils import load_from_file, save_to_file

def main():
    """主函数"""
    # 创建学生管理器
    manager = StudentManager()
    
    # 启动时加载数据
    load_from_file(manager)
    
    while True:
        print("\n" + "="*50)
        print("          学生成绩管理系统")
        print("="*50)
        print("1. 添加学生")
        print("2. 查看所有学生")
        print("3. 搜索学生")
        print("4. 删除学生")
        print("5. 成绩统计")
        print("6. 保存数据")
        print("7. 退出系统")
        print("="*50)
        
        choice = input("请选择操作 (1-7): ").strip()
        
        if choice == '1':
            print("\n--- 添加学生信息 ---")
            while True:
                if manager.add_student_from_input():
                    another = input("是否继续添加？(y/n): ").strip().lower()
                    if another != 'y':
                        break
        elif choice == '2':
            manager.show_all_students()
        elif choice == '3':
            print("\n--- 搜索学生信息 ---")
            if not manager.students:
                print("暂无学生信息！")
                continue
                
            keyword = input("请输入要搜索的学生学号或姓名: ").strip()
            found = manager.search_students(keyword)
            manager.display_search_results(found)
        elif choice == '4':
            print("\n--- 删除学生信息 ---")
            if not manager.students:
                print("暂无学生信息！")
                continue
                
            manager.show_all_students()
            try:
                index = int(input("请输入要删除的学生序号: ")) - 1
                manager.delete_student(index)
            except ValueError:
                print("请输入有效的数字！")
        elif choice == '5':
            manager.calculate_statistics()
        elif choice == '6':
            save_to_file(manager.students)
        elif choice == '7':
            save_to_file(manager.students)  # 退出前自动保存
            print("感谢使用学生成绩管理系统，再见！")
            break
        else:
            print("无效选择，请重新输入！")

# 程序入口
if __name__ == "__main__":
    main()
